package Interfaz;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Monitor;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.wb.swt.SWTResourceManager;

import DTO.DTONuevaCompetencia;
import Excepcion.CantidadDePuntosInvalidoException;
import Excepcion.DeporteVacioException;
import Excepcion.ModalidadVacioException;
import Excepcion.NombreCaracterException;
import Excepcion.NombreCompetenciaExistenteException;
import Excepcion.PuntajeImposibleException;
import Excepcion.TamReglamentoInvalidoException;
import Negocios.ControlCompetencia;


/**
 * CU004 - Dar de alta competencia deportiva (modalidad Liga)
 * @author 
 */
public class CU004_liga {

	protected Shell shlNueva_liga;
	private Text txtPuntosPorVictoria;
	private Text txtPuntosPorEmpate;
	private Text txtPuntosPorPresencia;
	private Text txtCantidadMaximaSets;
	private Text txtPuntosPorAusencia;
	private Label lblPuntosPorEmpate;
	
	private Button btnEmpatePermitido;
	private Button btnSets;
	private Button btnPuntuacion;
	private Button btnResultadoFinal;
	
	private DTONuevaCompetencia dtoNuevaCompetencia;
	
	private CU004 pantallaAnterior;

	public CU004_liga(CU004 pantallaAnterior, DTONuevaCompetencia dtoNuevaCompetencia) {
		this.pantallaAnterior = pantallaAnterior;
		this.dtoNuevaCompetencia = dtoNuevaCompetencia;
	}

	/**
	 * Open the window.
	 */
	public void open() {
		Display display = Display.getDefault();
		createContents();
		
		// Centrar ventana
		Monitor primary = display.getPrimaryMonitor();
		Rectangle bounds = primary.getBounds();
		Rectangle rect = shlNueva_liga.getBounds();
		int x = bounds.x + (bounds.width - rect.width) / 2;
		int y = bounds.y + (bounds.height - rect.height) / 2;	    
		shlNueva_liga.setLocation(x, y);
		
		Label lblNewLabel = new Label(shlNueva_liga, SWT.NONE);
		lblNewLabel.setBounds(10, 23, 110, 15);
		lblNewLabel.setText("Puntos por victoria:");
		
		txtPuntosPorVictoria = new Text(shlNueva_liga, SWT.BORDER);
		txtPuntosPorVictoria.setBounds(119, 20, 76, 21);
		txtPuntosPorVictoria.addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {
				txtPuntosPorVictoria.setBackground(SWTResourceManager.getColor(255, 255, 255));
		    }
			
		    public void focusLost(FocusEvent e) {
		    	try {
		    		if (Integer.parseInt(txtPuntosPorVictoria.getText()) < 0
		    				|| Integer.parseInt(txtPuntosPorVictoria.getText()) > 9999) {
		    			txtPuntosPorVictoria.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    		}
		    	}
		    	catch (NumberFormatException ex) {
		    		txtPuntosPorVictoria.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    	}
		    }
		});

		lblPuntosPorEmpate = new Label(shlNueva_liga, SWT.NONE);
		lblPuntosPorEmpate.setEnabled(false);
		lblPuntosPorEmpate.setText("Tantos por empate:");
		lblPuntosPorEmpate.setBounds(170, 64, 105, 15);
		
		txtPuntosPorEmpate = new Text(shlNueva_liga, SWT.BORDER);
		txtPuntosPorEmpate.setEnabled(false);
		txtPuntosPorEmpate.setBounds(279, 61, 76, 21);
		txtPuntosPorEmpate.addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {
				txtPuntosPorEmpate.setBackground(SWTResourceManager.getColor(255, 255, 255));
		    }
			
		    public void focusLost(FocusEvent e) {
		    	try {
		    		if (btnEmpatePermitido.getSelection()
		    				&& (Integer.parseInt(txtPuntosPorEmpate.getText()) < 0
		    				|| Integer.parseInt(txtPuntosPorEmpate.getText()) > 9999)) {
		    			txtPuntosPorEmpate.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    		}
		    	}
		    	catch (NumberFormatException ex) {
		    		txtPuntosPorEmpate.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    	}
		    }
		});
		
		btnEmpatePermitido = new Button(shlNueva_liga, SWT.CHECK);
		btnEmpatePermitido.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				lblPuntosPorEmpate.setEnabled(btnEmpatePermitido.getSelection());
				txtPuntosPorEmpate.setEnabled(btnEmpatePermitido.getSelection());
			}
		});
		btnEmpatePermitido.setBounds(10, 63, 130, 16);
		btnEmpatePermitido.setText("Empate permitido");
		
		Label lblPuntosPorPresentarse = new Label(shlNueva_liga, SWT.NONE);
		lblPuntosPorPresentarse.setText("Puntos por presentarse:");
		lblPuntosPorPresentarse.setBounds(10, 103, 124, 15);
		
		txtPuntosPorPresencia = new Text(shlNueva_liga, SWT.BORDER);
		txtPuntosPorPresencia.setBounds(140, 100, 76, 21);
		txtPuntosPorPresencia.addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {
				txtPuntosPorPresencia.setBackground(SWTResourceManager.getColor(255, 255, 255));
		    }
			
		    public void focusLost(FocusEvent e) {
		    	try {
		    		if (Integer.parseInt(txtPuntosPorPresencia.getText()) < 0
		    				|| Integer.parseInt(txtPuntosPorPresencia.getText()) > 9999) {
		    			txtPuntosPorPresencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    		}
		    	}
		    	catch (NumberFormatException ex) {
		    		txtPuntosPorPresencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    	}
		    }
		});
		
		Label lblNewLabel_1 = new Label(shlNueva_liga, SWT.NONE);
		lblNewLabel_1.setBounds(10, 143, 116, 15);
		lblNewLabel_1.setText("Forma de puntuaci\u00F3n:");
		
		final Label lblCantidadMxima = new Label(shlNueva_liga, SWT.NONE);
		lblCantidadMxima.setEnabled(false);
		lblCantidadMxima.setText("Cantidad m\u00E1xima:");
		lblCantidadMxima.setBounds(140, 171, 100, 15);
		
		txtCantidadMaximaSets = new Text(shlNueva_liga, SWT.BORDER);
		txtCantidadMaximaSets.setEnabled(false);
		txtCantidadMaximaSets.setBounds(242, 168, 76, 21);
		txtCantidadMaximaSets.addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {
				txtCantidadMaximaSets.setBackground(SWTResourceManager.getColor(255, 255, 255));
		    }
			
		    public void focusLost(FocusEvent e) {
		    	try {
		    		if (btnSets.getSelection()
		    				&& Integer.parseInt(txtCantidadMaximaSets.getText()) != 3
		    				&& Integer.parseInt(txtCantidadMaximaSets.getText()) != 5
		    				&& Integer.parseInt(txtCantidadMaximaSets.getText()) != 7
		    				&& Integer.parseInt(txtCantidadMaximaSets.getText()) != 9) {
		    			txtCantidadMaximaSets.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    		}
		    	}
		    	catch (NumberFormatException ex) {
		    		txtCantidadMaximaSets.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    	}
		    }
		});
		
		final Label lblPuntosPorAusencia = new Label(shlNueva_liga, SWT.NONE);
		lblPuntosPorAusencia.setEnabled(false);
		lblPuntosPorAusencia.setText("Puntos por ausencia:");
		lblPuntosPorAusencia.setBounds(140, 211, 115, 15);
		
		txtPuntosPorAusencia = new Text(shlNueva_liga, SWT.BORDER);
		txtPuntosPorAusencia.setEnabled(false);
		txtPuntosPorAusencia.setBounds(256, 208, 76, 21);
		txtPuntosPorAusencia.addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {
				txtPuntosPorAusencia.setBackground(SWTResourceManager.getColor(255, 255, 255));
		    }
			
		    public void focusLost(FocusEvent e) {
		    	try {
		    		if (btnPuntuacion.getSelection()
		    				&& (Integer.parseInt(txtPuntosPorAusencia.getText()) < 0
		    				|| Integer.parseInt(txtPuntosPorAusencia.getText()) > 9999)) {
		    			txtPuntosPorAusencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    		}
		    	}
		    	catch (NumberFormatException ex) {
		    		txtPuntosPorAusencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
		    	}
		    }
		});
		
		btnSets = new Button(shlNueva_liga, SWT.RADIO);
		btnSets.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				lblCantidadMxima.setEnabled(true);
				txtCantidadMaximaSets.setEnabled(true);
				lblPuntosPorAusencia.setEnabled(false);
				txtPuntosPorAusencia.setEnabled(false);
				
				btnEmpatePermitido.setEnabled(false);
				lblPuntosPorEmpate.setEnabled(false);
				txtPuntosPorEmpate.setEnabled(false);
			}
		});
		btnSets.setBounds(10, 170, 120, 16);
		btnSets.setText("Sets");
		
		btnPuntuacion = new Button(shlNueva_liga, SWT.RADIO);
		btnPuntuacion.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				lblCantidadMxima.setEnabled(false);
				txtCantidadMaximaSets.setEnabled(false);
				lblPuntosPorAusencia.setEnabled(true);
				txtPuntosPorAusencia.setEnabled(true);
				
				btnEmpatePermitido.setEnabled(true);
				if (btnEmpatePermitido.getSelection()) {
					lblPuntosPorEmpate.setEnabled(true);
					txtPuntosPorEmpate.setEnabled(true);
				}
			}
		});
		btnPuntuacion.setBounds(10, 210, 120, 16);
		btnPuntuacion.setText("Puntuaci\u00F3n");
		
		Button button = new Button(shlNueva_liga, SWT.NONE);
		button.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				shlNueva_liga.close();
			}
		});
		button.setText("Cancelar");
		button.setBounds(315, 307, 108, 32);
		
		Button btnFinalizar = new Button(shlNueva_liga, SWT.NONE);
		btnFinalizar.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				if (datosValidos()) {
					llenarDTO();
					
					/*MessageBox messageBox = new MessageBox(shlNueva_liga, SWT.ICON_INFORMATION);
					StringBuilder mensaje = new StringBuilder();
					mensaje.append("Id usuario: " + dtoNuevaCompetencia.getIdUsuario() + "\n");
					mensaje.append("Nombre competencia: " + dtoNuevaCompetencia.getNombreCompetencia() + "\n");
					mensaje.append("Id deporte: " + dtoNuevaCompetencia.getIdDeporte() + "\n");
					
					ArrayList<ArrayList<Integer>> lugares = dtoNuevaCompetencia.getLugares();
					for (ArrayList<Integer> a : lugares) {
						mensaje.append("Id lugar: " + a.get(0) + " - Disponibilidad: " + a.get(1) + "\n");
					}
					
					mensaje.append("Id modalidad: " + dtoNuevaCompetencia.getIdModalidad() + "\n");
					mensaje.append("Reglamento: " + dtoNuevaCompetencia.getReglamento() + "\n");
					mensaje.append("Puntos por victoria: " + dtoNuevaCompetencia.getPuntosPorVictoria() + "\n");
					mensaje.append("Puntos por empate: " + dtoNuevaCompetencia.getPuntosPorEmpate() + "\n");
					mensaje.append("Puntos por presencia: " + dtoNuevaCompetencia.getPuntosPorPresencia() + "\n");
					mensaje.append("Puntos por ausencia: " + dtoNuevaCompetencia.getPuntosPorAusencia() + "\n");
					mensaje.append("Sets: " + dtoNuevaCompetencia.getSets() + "\n");
					mensaje.append("Puntuacion: " + dtoNuevaCompetencia.getPuntuacion() + "\n");
					
					messageBox.setMessage(mensaje.toString());
					messageBox.open();*/
					
					ControlCompetencia controlCompetencia = new ControlCompetencia();
					
					try {
						controlCompetencia.crearCompetencia(dtoNuevaCompetencia);
						
						MessageBox mensaje = new MessageBox(shlNueva_liga, SWT.ICON_INFORMATION);
						mensaje.setMessage("La nueva competencia ha sido creada exitosamente.");
						mensaje.open();
						
						shlNueva_liga.close();
					}
					catch (NombreCompetenciaExistenteException ex1) {
						MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
						error.setMessage("El nombre ingresado ya existe.\n" +
								"Por favor, ingrese un nombre diferente.");
						error.open();
					}
					catch (NombreCaracterException ex2) {
						ex2.printStackTrace();
					}
					catch (DeporteVacioException ex3) {
						ex3.printStackTrace();
					}
					catch (ModalidadVacioException ex4) {
						ex4.printStackTrace();
					}
					catch (TamReglamentoInvalidoException ex5) {
						ex5.printStackTrace();
					}
					catch (CantidadDePuntosInvalidoException ex6) {
						ex6.printStackTrace();
					}
					catch (PuntajeImposibleException ex7) {
						ex7.printStackTrace();
					}
					catch (Exception ex) {
						ex.printStackTrace();
					}
				}
			}
		});
		btnFinalizar.setText("Guardar");
		btnFinalizar.setBounds(183, 307, 108, 32);
		
		Button btnAnterior = new Button(shlNueva_liga, SWT.NONE);
		btnAnterior.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				//llenarDTO();
				pantallaAnterior.updateDTO(dtoNuevaCompetencia);
				shlNueva_liga.setVisible(false);
				pantallaAnterior.shlNueva.setVisible(true);
				pantallaAnterior.shlNueva.forceFocus();
			}
		});
		btnAnterior.setText("<< Anterior");
		btnAnterior.setBounds(51, 307, 108, 32);
		
		btnResultadoFinal = new Button(shlNueva_liga, SWT.RADIO);
		btnResultadoFinal.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				lblCantidadMxima.setEnabled(false);
				txtCantidadMaximaSets.setEnabled(false);
				lblPuntosPorAusencia.setEnabled(false);
				txtPuntosPorAusencia.setEnabled(false);
				
				btnEmpatePermitido.setEnabled(true);
				if (btnEmpatePermitido.getSelection()) {
					lblPuntosPorEmpate.setEnabled(true);
					txtPuntosPorEmpate.setEnabled(true);
				}
			}
		});
		btnResultadoFinal.setBounds(10, 250, 120, 16);
		btnResultadoFinal.setText("Resultado Final");
		
		shlNueva_liga.open();
		shlNueva_liga.layout();
		while (!shlNueva_liga.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	protected boolean datosValidos() {
		try {
    		if (Integer.parseInt(txtPuntosPorVictoria.getText()) < 0
    				|| Integer.parseInt(txtPuntosPorVictoria.getText()) > 9999) {
    			txtPuntosPorVictoria.setBackground(SWTResourceManager.getColor(255, 153, 153));
    			
    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
				error.setMessage("Puntaje por victoria inv\u00E1lido.\n"
						+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
						+ "(nueve mil novecientos noventa y nueve).");
				error.open();
    			
    			return false;
    		}
    	}
    	catch (NumberFormatException ex) {
    		txtPuntosPorVictoria.setBackground(SWTResourceManager.getColor(255, 153, 153));
    		
    		MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
			error.setMessage("Puntaje por victoria inv\u00E1lido.\n"
					+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
					+ "(nueve mil novecientos noventa y nueve).");
			error.open();
    		
    		return false;
    	}
		
		if (btnEmpatePermitido.getSelection()) {
			try {
	    		if (Integer.parseInt(txtPuntosPorEmpate.getText()) < 0
	    				|| Integer.parseInt(txtPuntosPorEmpate.getText()) > 9999) {
	    			txtPuntosPorEmpate.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    			
	    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
					error.setMessage("Puntaje por empate inv\u00E1lido.\n"
							+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
							+ "(nueve mil novecientos noventa y nueve).");
					error.open();
	    			
	    			return false;
	    		}
	    		else if (Integer.parseInt(txtPuntosPorEmpate.getText()) >=
	    				Integer.parseInt(txtPuntosPorVictoria.getText())) {
	    			txtPuntosPorEmpate.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    			
	    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
					error.setMessage("Puntaje por empate inv\u00E1lido.\n"
							+ "Debe ingresar un valor menor al de puntos por victoria.");
					error.open();
	    			
	    			return false;
	    		}
	    	}
	    	catch (NumberFormatException ex) {
	    		txtPuntosPorEmpate.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    		
	    		MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
				error.setMessage("Puntaje por empate inv\u00E1lido.\n"
						+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
						+ "(nueve mil novecientos noventa y nueve).");
				error.open();
	    		
	    		return false;
	    	}
		}
		
		try {
    		if (Integer.parseInt(txtPuntosPorPresencia.getText()) < 0
    				|| Integer.parseInt(txtPuntosPorPresencia.getText()) > 9999) {
    			txtPuntosPorPresencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
    			
    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
				error.setMessage("Puntaje por presencia inv\u00E1lido.\n"
						+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
						+ "(nueve mil novecientos noventa y nueve).");
				error.open();
    			
    			return false;
    		}
    		else if (Integer.parseInt(txtPuntosPorPresencia.getText()) >=
    				Integer.parseInt(txtPuntosPorVictoria.getText())) {
    			txtPuntosPorPresencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
    			
    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
				error.setMessage("Puntaje por presencia inv\u00E1lido.\n"
						+ "Debe ingresar un valor menor al de puntos por victoria.");
				error.open();
    			
    			return false;
    		}
    	}
    	catch (NumberFormatException ex) {
    		txtPuntosPorPresencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
    		
    		MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
			error.setMessage("Puntaje por presencia inv\u00E1lido.\n"
					+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
					+ "(nueve mil novecientos noventa y nueve).");
			error.open();
    		
    		return false;
    	}
		
		if (btnSets.getSelection()) {
			try {
	    		if (Integer.parseInt(txtCantidadMaximaSets.getText()) != 3
	    				&& Integer.parseInt(txtCantidadMaximaSets.getText()) != 5
	    				&& Integer.parseInt(txtCantidadMaximaSets.getText()) != 7
	    				&& Integer.parseInt(txtCantidadMaximaSets.getText()) != 9) {
	    			txtCantidadMaximaSets.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    			
	    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
	    			error.setMessage("Cantidad de sets inv\u00E1lida.\n"
							+ "S\u00F3lo puede haber 3 (tres), 5 (cinco), 7 (siete) \u00F3 9 (nueve) sets por encuentro.");
					error.open();
	    			
	    			return false;
	    		}
	    	}
	    	catch (NumberFormatException ex) {
	    		txtCantidadMaximaSets.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    		
	    		MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
				error.setMessage("Cantidad de sets inv\u00E1lida.\n"
						+ "S\u00F3lo puede haber 3 (tres), 5 (cinco), 7 (siete) \u00F3 9 (nueve) sets por encuentro.");
				error.open();
	    		
	    		return false;
	    	}
		}
		else if (btnPuntuacion.getSelection()) {
			try {
	    		if (Integer.parseInt(txtPuntosPorAusencia.getText()) < 0
	    				|| Integer.parseInt(txtPuntosPorAusencia.getText()) > 9999) {
	    			txtPuntosPorAusencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    			
	    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
					error.setMessage("Puntaje por ausencia inv\u00E1lido.\n"
							+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
							+ "(nueve mil novecientos noventa y nueve).");
					error.open();
	    			
	    			return false;
	    		}
	    		/*else if (Integer.parseInt(txtPuntosPorAusencia.getText()) >=
	    				Integer.parseInt(txtPuntosPorVictoria.getText())) {
	    			txtPuntosPorAusencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    			
	    			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
					error.setMessage("Puntaje por ausencia inv\u00E1lido.\n"
							+ "Debe ingresar un valor menor al de puntos por victoria.");
					error.open();
	    			
	    			return false;
	    		}*/
	    	}
	    	catch (NumberFormatException ex) {
	    		txtPuntosPorAusencia.setBackground(SWTResourceManager.getColor(255, 153, 153));
	    		
	    		MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
				error.setMessage("Puntaje por ausencia inv\u00E1lido.\n"
						+ "Debe ingresar un valor entero entre 0 (cero) y 9999 "
						+ "(nueve mil novecientos noventa y nueve).");
				error.open();
	    		
	    		return false;
	    	}
		}
		else if (!btnResultadoFinal.getSelection()) {
			MessageBox error = new MessageBox(shlNueva_liga, SWT.ICON_ERROR);
			error.setMessage("Debe seleccionar una forma de puntuaci\u00F3n de la lista.");
			error.open();
    		
    		return false;
		}
		
		return true;
	}

	protected void llenarDTO() {
		// Limpio DTO
		dtoNuevaCompetencia.setPuntosPorVictoria(-1);
		dtoNuevaCompetencia.setPuntosPorEmpate(-1);
		dtoNuevaCompetencia.setPuntosPorPresencia(-1);
		dtoNuevaCompetencia.setPuntosPorAusencia(-1);
		dtoNuevaCompetencia.setSets(-1);
		dtoNuevaCompetencia.setPuntuacion(-1);
		
		dtoNuevaCompetencia.setPuntosPorVictoria(Integer.parseInt(txtPuntosPorVictoria.getText()));
		if (btnEmpatePermitido.getSelection() && !btnSets.getSelection()) {
			dtoNuevaCompetencia.setPuntosPorEmpate(Integer.parseInt(txtPuntosPorEmpate.getText()));
		}
		dtoNuevaCompetencia.setPuntosPorPresencia(Integer.parseInt(txtPuntosPorPresencia.getText()));
		if (btnSets.getSelection()) {
			dtoNuevaCompetencia.setSets(Integer.parseInt(txtCantidadMaximaSets.getText()));
		}
		else if (btnPuntuacion.getSelection()) {
			dtoNuevaCompetencia.setPuntosPorAusencia(Integer.parseInt(txtPuntosPorAusencia.getText()));
			dtoNuevaCompetencia.setPuntuacion(1);
		}
	}

	/**
	 * Create contents of the window.
	 */
	protected void createContents() {
		shlNueva_liga = new Shell(SWT.CLOSE | SWT.TITLE | SWT.MIN);
		shlNueva_liga.setMinimumSize(new Point(132, 28));
		shlNueva_liga.setSize(450, 387);
		shlNueva_liga.setText("Modalidad Liga");
		shlNueva_liga.addListener(SWT.Close, new Listener() {
			public void handleEvent(Event event) {
				pantallaAnterior.shlNueva.close();
			}
		});

	}

	public void updateDTO(DTONuevaCompetencia dtoNuevaCompetencia) {
		this.dtoNuevaCompetencia.setIdUsuario(dtoNuevaCompetencia.getIdUsuario());
		this.dtoNuevaCompetencia.setNombreCompetencia(dtoNuevaCompetencia.getNombreCompetencia());
		this.dtoNuevaCompetencia.setLugares(dtoNuevaCompetencia.getLugares());
		this.dtoNuevaCompetencia.setIdDeporte(dtoNuevaCompetencia.getIdDeporte());
		this.dtoNuevaCompetencia.setReglamento(dtoNuevaCompetencia.getReglamento());
		this.dtoNuevaCompetencia.setIdModalidad(dtoNuevaCompetencia.getIdModalidad());
	}
}
